In graphics and scientific applications, exponent computations occur frequently. An exponent of a function is defined as ax=aI×af, where x=I+f, I is the integer part and f is the fraction part. Also, x is a normalized floating-point number such that x=1.x0x1x3 . . . xn×2E. The base 2 exponent of x=I+z (with z replacing f) can be described as 2x=2I×2Z. One mechanism for implementing an exponent computation in a processing system, such as a central processing unit (CPU) or digital signal processor (DSP), is through the evaluation of a polynomial. One method for polynomial evaluation is a minimax polynomial for a single floating-point implementation (e.g., 0.9999998927+(0.6931547484+(0.2401397582+(0.5586608429e-1+(0.8943041620e-2+0.1896367540e-2*x)*x)*x)*x)*x). This evaluation method has a maximum error of 1.073000000e-7. One advantage of this method is that hardware normally available in a floating-point unit is all that is generally needed to implement the method. However, disadvantages of this method may include the number of instructions required and the latency in implementation.
Another method for implementing an exponential function includes a Taylor series approximation, which is described by the following equation:
                    y        =                              2            z                    =                                    f              ⁡                              (                                  z                  o                                )                                      +                          (                                                z                  1                                ⁢                x                ⁢                                                                  ⁢                                                      f                    ′                                    ⁡                                      (                                          z                      o                                        )                                                              )                        +                          (                                                                    Z                    1                    2                                    2                                ×                                                      f                    ″                                    ⁡                                      (                                          z                      0                                        )                                                              )                                                          (                  Eq          .                                          ⁢          1                )            In other words, the above exponential function 2z can be described using a base function f(z0) and first (f′ (z0)) and second (f″ (z0)) derivatives of the same, plus some error terms to get an approximation of f(z1) (e.g., a delta function (z1), comprising the difference between known (computed) values at z0). An advantage of this approach is that it may be pipelined to give a result per instruction. However, when compared to the polynomial approach, additional components may be needed.
Further, a Taylor series approximation is typically implemented using dedicated hardware, as opposed to simply using a CPU, since these operations are not common and multiple specialized tables are typically added to the processor. Using a dedicated processing unit may result in a low return on investment if the exponential function is implemented infrequently. It would be desirable to implement such operations in an architecture that provides for more utilization frequency than conventional systems while using an optimum number of instructions.